<?php
/**
 * @User: ngannv
 * @Email: ngankt2@gmail.com
 * @Date: 8/24/11
 * @Time: 4:36 PM
 */

class jModel extends CI_Model
{
    public static $query = '';
    public static $result;

    public function __construct()
    {
        parent::__construct();
        $this->load->library('jglobal');
    }

    public static function getModel($model, $param = null, $dir = '/', $ext = '.php')
    {
        $model_dir = str_replace('Model', '', $model);

    }

    /**
     * @ngannv update(25.08.2011)
     * Load admin Model
     * Model trong Thu mucj jMaster(default) có cấu trúc là 1 folder bên trong
     * tồn tại ít nhất 1 file cấu trúc tên = tên "folder+Model.php" class Name=folder+Model
     */
    public static function getAdminModel($model, $params = null, $ext = '.php')
    {
        $model_dir = str_replace('Model', '', $model);
        $file = dirname(__FILE__) . '/' . ADMIN_DIR . $model_dir . '/' . $model . $ext;
        if (!file_exists($file) && J_DEBUG) {
            jGlobal::debug($model);
        }
        include_once $file;
        return new $model($params);
    }

    /**
     * @Ngannv::Update(25.08.2011)
     * Lấy dât trong bảng
     *
     */
    public static function getTable($table_name, $fields = "*", $more_sql = ' ')
    {
        self::$query = "SELECT {$fields} FROM {$table_name} {$more_sql}";
        $data = array();
        self::$result = mysql_query(self::$query);
        while ($row = mysql_fetch_assoc(self::$result)) {
            $data[] = $row;
        }
        return $data;

    }

    /**
     * Thêm mới
     * @Ngannv : update(25.08.2011)
     * @param : $table_name=Tên của bảng; $values=array() trong đó các phân tử tương ứng là các trường trong bảng
     * @return int - Id của bản ghi mới thêm vào
     **/

    static function insert($table_name, $values, $replace = false)
    {
        if ($replace) {
            $sql = 'REPLACE ';
        } else {
            $sql = 'INSERT INTO ';
        }
        $sql .= ' `' . $table_name . '`(';
        $i = 0;
        if (is_array($values)) {
            foreach ($values as $key => $value) {
                if (($key === 0) or is_numeric($key)) {
                    $key = $value;
                }
                if ($key) {
                    if ($i <> 0) {
                        $sql .= ',';
                    }
                    $sql .= '`' . $key . '`';
                    $i++;
                }
            }
            $sql .= ') VALUES(';

            $i = 0;
            foreach ($values as $key => $value) {
                if (is_numeric($key) or $key === 0) {
                    $value = jGlobal::getParam($value);
                }
                if ($i <> 0) {
                    $sql .= ',';
                }
                if ($value === 'NULL') {
                    $sql .= 'NULL';
                } else {
                    $sql .= '\'' . addslashes($value) . '\'';
                }
                $i++;
            }
            $sql .= ')';
            if(!mysql_query($sql) && J_DEBUG){
                jGlobal::debug($value);
                echo mysql_error();
            }
            return mysql_insert_id();
        }
        return 0;
    }

}
